From: Lucas Werkmeister Date: Mon, 8 Feb 2021 21:20:42 +0000 (+0100) Subject: history: Trim input and ignore if empty X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~616^2^2~358 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d31f805817970fe42e3c0dae5e3faa6eca2ef88e;p=gnome-shell.git history: Trim input and ignore if empty This ports the runDialog changes of [1] to the underlying history component, where they can benefit looking glass as well: the history is now responsible for trimming the input and deciding that it shouldn’t be stored if empty. (Note that _setPrevItem and _setNextItem already skipped updating the history if the entry was empty.) Since both users, runDialog and lookingGlass, also need the trimmed input for other reasons – runDialog to avoid issues when interpreting the command as a file path (if it can’t be executed as a command), lookingGlass to decide whether a command should be run at all – have addItem return the trimmed input. (runDialog and lookingGlass are not yet changed to take advantage of this – that will be done in separate commits.) [1]: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1442 Part-of: --- diff --git a/js/misc/history.js b/js/misc/history.js index c7859953d..415258881 100644 --- a/js/misc/history.js +++ b/js/misc/history.js @@ -69,21 +69,24 @@ var HistoryManager = class { } addItem(input) { - if (this._history.length === 0 || - this._history[this._history.length - 1] !== input) { + input = input.trim(); + if (input && + (this._history.length === 0 || + this._history[this._history.length - 1] !== input)) { this._history = this._history.filter(entry => entry !== input); this._history.push(input); this._save(); } this._historyIndex = this._history.length; + return input; // trimmed } _onEntryKeyPress(entry, event) { let symbol = event.get_key_symbol(); if (symbol === Clutter.KEY_Up) - return this._setPrevItem(entry.get_text()); + return this._setPrevItem(entry.get_text().trim()); else if (symbol === Clutter.KEY_Down) - return this._setNextItem(entry.get_text()); + return this._setNextItem(entry.get_text().trim()); return Clutter.EVENT_PROPAGATE; }